
function Logger() {
   this.service = Components.classes["@mozilla.org/consoleservice;1"]
        .getService(Components.interfaces.nsIConsoleService);
   this.level = Logger.INFO;
}
Logger.FINER = 0;
Logger.FINE = 1;
Logger.DEBUG = 2;
Logger.INFO = 3;
Logger.WARN = 4;
Logger.SEVERE = 5;

Logger.prototype.FINER = function(msg) {
   this.log(Logger.FINER,msg);
}

Logger.prototype.fine = function(msg) {
   this.log(Logger.FINE,msg);
}

Logger.prototype.debug = function(msg) {
   this.log(Logger.DEBUG,msg);
}

Logger.prototype.info = function(msg) {
   this.log(Logger.INFO,msg);
}

Logger.prototype.warn = function(msg) {
   this.log(Logger.WARN,msg);
}

Logger.prototype.severe = function(msg) {
   this.log(Logger.SEVERE,msg);
}

Logger.prototype.log = function(level,msg) {
   if (level>=this.level) {
      this.service.logStringMessage(msg);
   }
}

Logger.prototype.logDocument = function(level,doc) {
   if (level>=this.level) {
      var serializer = new XMLSerializer();
      this.service.logStringMessage(serializer.serializeToString(doc));
   }
}

var LOG = new Logger();

